package com.jingxuan.dto.request;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PositiveOrZero;
import lombok.Data;

/**
 * 记录用户浏览行为的请求。
 */
@Data
public class RecordBrowseBehaviorRequest {

    /** 用户ID */
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    /** 浏览的商品ID */
    @NotNull(message = "商品ID不能为空")
    private String productId;

    /** 浏览开始时间 */
    private LocalDateTime startTime;

    /** 浏览结束时间 */
    private LocalDateTime endTime;

    /** 页面深度 */
    @PositiveOrZero(message = "页面深度不能为负数")
    private Integer pageDepth;

    /** 浏览页数 */
    @PositiveOrZero(message = "浏览页数不能为负数")
    private Integer pageCount;

    /** 商品分类（可选） */
    private String category;

    /** 品牌信息（可选） */
    private String brand;

    /** 浏览时的商品价格 */
    private BigDecimal price;

    /** 商品好评率 */
    private Double positiveRate;

    /** 商品热度 */
    private Double heat;

    /** 商品发布时间或最后更新时间 */
    private LocalDateTime releaseTime;
}
